Game devices sense user actions through user inputs (such as joystick, buttons, etc.) and various sensors. Continuous user actions are translated by the game device to digital data streams and presented to game software. Game software updates the game states through game physics and then updates the game display and audio. User responds continuously to the changing display and audio, thus creating a closed-loop feedback system.
Real-time closed-loop systems with human-in-the-loop are sensitive to latency in the feedback loop. Games with continuous user actions show large degradation in play quality due to latency between player action and player perception. Latency typically results from multiple factors, such as data networks, game software, game display and game device sensors.
For multiplayer games with continuous multiplayer actions, this degradation is even higher because each human player is responding to perceived actions of other players, thus compounding effects of latency.
Game physics describes the evolution of each game object in the game world. Simulation of game physics on game devices or computers result in changes to game states in response to player actions. Game display software presents the game states to the players, e.g., positions and orientations of game objects in the game world. In a multiplayer game, each player typically controls at least one game object, which may interact with the game objects controlled by other players. Under latency, states of the game objects and the corresponding displayed game worlds on different player devices may diverge and lose coherence. For example, two game devices may show two different winners at the end of a racing game, or one device shows collision between game objects while the other device misses the collision. Long latency introduces significant sluggishness to the feedback of player response. Because timely user actions depend upon the displayed game objects, and the feel of the game depends upon the response of the displayed game objects to user actions, the latency degrades the quality of game play. For example, achieving a tightly controlled relative position for drafting in a car racing game becomes much harder with the increased latency.
Moreover, latency in the feedback loop varies dynamically due to variability in the network. Time-varying latency in the feedback loop makes it difficult to precisely control the movement of game objects in the game world. On mobile and wireless networks, per packet latency variability is much larger than in wired networks. For large latency variations, the player-to-player feedback loop is often destabilized, resulting in complete loss of consistency of the game states among game devices.
Current multiplayer games use server synchronization to maintain coherence. Server synchronization involves maintaining an authoritative game state on a server. Logical consistency is maintained by allowing game objects controlled by players to receive game states from the server. Getting authoritative game states and remote players inputs from the server introduces additional network hops and latency. Moreover, in server synchronization, even with constant network latency, artificial time base variation is introduced to maintain logical consistency (i.e., same order of short sequence of events). When using server synchronization of logical states, objects controlled by a peer player have a different simulation time base than objects controlled by the local self player. In other words, even when the network latency is constant, the simulations of two different players proceed at two different time scales, each may speed up and slow down as necessary to maintain a consistent short sequence of events. As a result, the relative time differences change dynamically. Simulation time base of an object may vary as the object approaches other objects. Such variations can result in non-physical object behavior.
In some current systems, game devices extrapolate and correct the motion of game objects using delayed values from the server. One known technique for extrapolating and predicting future object positions from past delayed positions, velocities and accelerations is dead reckoning. Future predictions are corrected when remote values received from the server differ from the predicted values. However, accurate dead reckoning is limited to prediction of ballistic trajectories, i.e., linear or parabolic functions of time resulting from constant acceleration. When the players engage in continuous action in response to the presented game world, prediction accuracy of dead reckoning degrades due to large changes in accelerations from reaction and contact forces among the game objects.